#include<iostream>
using namespace std;
#include<vector>
/*
功能描述：
    对vector容器的容量和大小操作
函数原型：
    empty();    判断容器是否为空
    capacity();     容器的容量
    size();     返回容器中元素的个数
    resize(int num);    重新指定容器的长度为num，若容器变长，则以默认值填充新位置。如果容器变短，则末尾超出容器长度的元素被删除
    resize(int num,elem);   重新指定容器的长度为num，若容器变长，则以elem值填充新位置，如果容器变短，则末尾超出容器长度的元素被删除   
*/
void printVector(vector<int> &v)
{
    for(vector<int>::iterator it=v.begin();it!=v.end();it++)
    {
        cout<<*it<<" ";
    }
    cout<<endl;
}
void test01()
{
    vector<int> v1;
    for(int i=0;i<10;i++)
    {
        v1.push_back(i);
    }
    printVector(v1);

    if(v1.empty())//为真，代表容器为空
    {
        cout<<"v1为空"<<endl;
    }
    else
    {
        cout<<"v1不为空"<<endl;
        cout<<"v1的容量为："<<v1.capacity()<<endl;
        cout<<"v1的大小为："<<v1.size()<<endl;
    }
    //重新指定大小
    v1.resize(20,100);//利用重载版本，可以指定默认值填充，参数2
    printVector(v1);//如果重新指定的比原来长了，默认用0填充新的位置
    v1.resize(5);
    printVector(v1);//如果重新指定的比原来短了，超出部分会删除掉
    cout<<v1.capacity();//放入数据超过默认容量值了，这里默认容量是16，那么就会进行扩容，放入数据少了，则不会扩容。就像瓶子倒水和装水，倒水还是那个瓶子，装水多了，装不下，就要扩容了
}
int main()
{
    test01();
}